\documentclass[]{article}
\usepackage{hyperref}
\begin{document}
\title{How's The Weather?\\ \normalsize{Enterprise Application Integration Project}}
\author{A. Andronikakis, D. Dobreva, C. Halmaghi, Zs. Istvan}
\date{\today}
\maketitle

\section{Motivation}
Our projects aims at solving the problem of weather forecasts not being accurate and ``localized'' enough. Currently, the forecast presented is based on how the weather is at the closest measurement station, which is usually located at the nearest airport. This, however, may be tens of kilometers away from the actual location of the end user. In order to solve this problem, we propose a social platform that tries to provide a more accurate forecast based on what other people that are closer to the end user are experiencing.

Our service will also propose some points of interests to the end user depending on the expected weather (which is estimated by aggregating the actual/official forecast and perception/experience of the other users).

\section{Service description}
We plan on exposing a SOAP interfacem with two kinds of operation:
\begin{itemize}
	\item Update -- in this operation the user pushes the current weather to the service. The service stores this update together with its reverse geocoded location and timestamp. Updates are considered expired after a time and they are discarded from the system.
	
	\item Forecast -- the second operation permits the user to pull the current forecast for his/her location, together with a list of points of interests based on this forecast. In order to answer for a query, the service checks the weather at the user's location and finds the updates which also point to the same location (we plan on using the same city, or same postal code). After a forecast is set up, the service fetches the list of shops/cinemas/etc. in the vicinity. The choice of venues is based on the weather.
\end{itemize}

\section{Intermediary services}

As an intermediary service (message handler) we propose the following two options:
\begin{itemize}
	\item User authentification -- A handler at the server side can check if incoming requests have a valid ``user identity token'' in their header. In case this is missing, we consider the message coming from an untrusted source, and we discard it before reaching the service.
	
	\item Weather keyword extraction -- If our service could be coupled with other social services (like Twitter), maybe the users would wish to describe the weather not by using a set of given keywords, but by sentences. A handler could take the status part of a message and try to find keywords in it which match to the predefined set. (Lexical analysis is out of the scope of this project).
	
\end{itemize}

\section{Third party web services}
For the weather forecast we plan on using the Global Weather\footnote{\url{http://www.webservicex.net/globalweather.asmx?WSDL}} service by Webservicex.net.

For geocoding and reverse geocoding we plan on using the Microsoft Bing Map API\footnote{\url{http://dev.virtualearth.net/webservices/v1/geocodeservice/geocodeservice.svc }}.
For searching for POIs close to an address we use an other part of the same Microsoft service\footnote{\url{http://dev.virtualearth.net/webservices/v1/searchservice/searchservice.svc}}.
\end{document}
